home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 February / EnigmA AMIGA RUN 15 (1997)(G.R. Edizioni)(IT)[!][issue 1997-02][PLANET CD V].iso / progs / editor / frexxed / fpl / faceedit.fpl < prev    next >
Text File  |  1996-07-20  |  4KB  |  122 lines

  1.  
  2. string FaceFile = "FrexxEd:Startup/MyFace.FPL";
  3. void export FaceEdit()
  4. {
  5.  string array[1];
  6.  string name;
  7.  int number;
  8.  
  9.  number=GetList("facestyle", &array);
  10.  if(number) {
  11.    string style;
  12.    int fg, bg;
  13.    int ret;
  14.    string n_style;
  15.    int n_fg, n_bg;
  16.    string s_temp;
  17.    int i_temp;
  18.    
  19. //   Request(sprintf("%d faces", number));
  20.    while(RequestWindow("Defined face styles:",
  21.                     "Style:", "a", &array, &name, number)) {
  22.      
  23.      if(0>FaceRead(name, &style, &fg, &bg)) {
  24.        Request("Unknown style: " + name, "beep", "ok");
  25.        continue;
  26.      }
  27.      n_style = style;
  28.      n_fg = fg;
  29.      n_bg = bg;
  30.      
  31.      do {
  32.        ret = Request(sprintf("%s = '%s' fg: %d bg: %d", name, n_style, n_fg, n_bg),
  33.                      "Edit style", "Ok|style|fg|bg|Cancel");
  34.        switch(ret) {
  35.          case 0: /* leave original */
  36.            n_style = style;
  37.            n_fg = fg;
  38.            n_bg = bg;
  39.            break;
  40.            
  41.          case 1: /* use this */
  42.            break;
  43.  
  44.          case 2: /* style */
  45.            s_temp = PromptString(n_style, "Style",
  46.                                  "Enter style as in\n"
  47.                                  "Bold|Normal|Italic|Underline|Reverse\n"
  48.                                  "with the parts you prefer");
  49.            if(strlen(s_temp) || !GetErrNo())
  50.              n_style = s_temp;
  51.            break;
  52.          case 3: /* fg */
  53.            i_temp = PromptInt("Forground pen", n_fg,
  54.                               "Enter pen number to use\n"
  55.                               "for forground");
  56.            if(i_temp || !GetErrNo())
  57.              n_fg = i_temp;
  58.            break;
  59.          case 4: /* bg */
  60.            i_temp = PromptInt("Background pen", n_bg,
  61.                               "Enter pen number to use\n"
  62.                               "for background");
  63.            if(i_temp || !GetErrNo())
  64.              n_bg = i_temp;
  65.            break;
  66.        }
  67.        FaceStyle(name, n_style, n_fg, n_bg, 1);
  68.        RedrawScreen();
  69.      } while(ret>1);
  70.    }
  71.    if(ret=Request("Would you like to save this now?", "Save Styles", "yes|help|no")) {
  72.      string store;
  73.      if(2 == ret) {
  74.        ret=Request("You will now be asked to enter a\n"
  75.                    "file name to use to store your styles.\n"
  76.                    "By default, and suggested, is a file that\n"
  77.                    "will be put in your FrexxEd:Startup/ drawer\n"
  78.                    "since that will be 'executed' each time you\n"
  79.                    "will start FrexxEd in the future!\n"
  80.                    "Continue?");
  81.      }
  82.      if(ret) {
  83.        store = PromptFile(FaceFile, "Save Styles", "#?.FPL", "s");
  84.        if(strlen(store)) {
  85.          int newid;
  86.          int ourid;
  87.          int n;
  88.          string str;
  89.          FaceFile = store; /* remember to next time */
  90.          newid = New();
  91.          ourid=CurrentBuffer(newid);
  92.          Output("/* Generated by FaceEdit.FPL v0.1 " + GetDate(-1) + " */\n");
  93.          for(;n< number; n++) {
  94.            FaceRead(array[n], &style, &fg, &bg);
  95.            str = sprintf("FaceStyle(\"%s\", \"%s\", %d, %d, 1);\n",
  96.                          array[n], style, fg, bg);
  97.            Output(str);
  98.          }
  99.          Save(store);
  100.          CurrentBuffer(ourid);
  101.          Kill(newid);
  102.        }
  103.      }
  104.    }
  105.  }
  106.  else
  107.    Request("none");
  108.  
  109. }
  110. ReadInfo("_faceedit");
  111. if(GetErrNo()) { /* just a way to make the menu only once, even if this file
  112.                     is executed repeatedly! */
  113.   /*
  114.    * Create our menu setup:
  115.    */
  116.   MenuAdd("s", "Face Styles...", "FaceEdit();", "",
  117.           ReadInfo("menu_program_title"),
  118.           ReadInfo("menu_program_item"),-1); // Add to PackageSettings
  119.   MenuBuild();
  120.   ConstructInfo("_faceedit", "", "", "BGH", "", 0, 1, 1);
  121. }
  122.